OpenClaw 浏览器自动化:网页操作全攻略

科技AI · 阅读时间 3 分钟

OpenClaw 浏览器自动化:网页操作全攻略

> 摘要:掌握 OpenClaw 浏览器自动化技能,轻松实现网页抓取、表单填写、数据导出等任务。

浏览器模式对比

1. Sandbox 模式(隔离浏览器)

```javascript

browser.open({ target: 'sandbox', url: 'https://example.com' })

```

  • ✅ 完全隔离,不影响日常浏览
  • ✅ 适合自动化任务
  • ❌ 需要额外配置
  • 2. Host 模式(本地浏览器)

    ```javascript

    browser.open({ target: 'host', url: 'https://example.com' })

    ```

  • ✅ 使用现有浏览器
  • ✅ 保持登录状态
  • ❌ 可能干扰日常使用
  • 3. User 模式(用户浏览器)

    ```javascript

    browser.open({ profile: 'user', url: 'https://example.com' })

    ```

  • ✅ 完全控制用户浏览器
  • ✅ 所有扩展可用
  • ❌ 需要用户授权
  • 核心操作

    打开网页

    ```javascript

    // 基本打开

    browser.open('https://github.com')

    // 指定目标

    browser.open({ target: 'host', url: 'https://github.com' })

    // 新标签页

    browser.open({ newTab: true, url: 'https://github.com' })

    ```

    页面截图

    ```javascript

    // 全屏截图

    browser.screenshot({ fullPage: true })

    // 指定区域

    browser.screenshot({ x: 0, y: 0, width: 800, height: 600 })

    // 保存路径

    browser.screenshot({ path: 'screenshot.png' })

    ```

    元素操作

    ```javascript

    // 点击

    browser.click({ ref: 'e22' })

    // 输入

    browser.type({ ref: 'e16', text: '验证码' })

    // 悬停

    browser.hover({ ref: 'e10' })

    // 拖拽

    browser.drag({ startRef: 'e1', endRef: 'e2' })

    ```

    表单提交

    ```javascript

    // 填写表单

    browser.type({ ref: 'username', text: 'user' })

    browser.type({ ref: 'password', text: 'pass' })

    browser.click({ ref: 'submit' })

    // 提交表单

    browser.submit({ ref: 'form' })

    ```

    实战案例

    案例 1:自动登录

    ```javascript

    // 打开登录页

    browser.open('https://example.com/login')

    // 填写表单

    browser.type({ ref: 'email', text: 'user@example.com' })

    browser.type({ ref: 'password', text: 'password123' })

    // 提交

    browser.click({ ref: 'login-btn' })

    ```

    案例 2:数据抓取

    ```javascript

    // 打开列表页

    browser.open('https://example.com/products')

    // 获取页面快照

    snapshot = browser.snapshot()

    // 提取数据

    products = snapshot.querySelectorAll('.product')

    for p in products:

    name = p.querySelector('.name').text

    price = p.querySelector('.price').text

    print(f'{name}: {price}')

    ```

    案例 3:批量导出

    ```javascript

    // 打开后台

    browser.open('https://pos.example.com/orders')

    // 设置日期

    browser.type({ ref: 'start-date', text: '2026-03-17' })

    browser.type({ ref: 'end-date', text: '2026-03-23' })

    // 查询

    browser.click({ ref: 'search' })

    // 导出

    browser.click({ ref: 'export' })

    ```

    高级技巧

    1. 等待元素

    ```javascript

    // 等待元素出现

    browser.wait({ ref: 'e10', timeout: 5000 })

    // 等待文本

    browser.wait({ text: '加载完成', timeout: 5000 })

    // 等待 URL

    browser.wait({ url: '/success', timeout: 5000 })

    ```

    2. 处理弹窗

    ```javascript

    // 确认对话框

    browser.dialog({ accept: true })

    // 取消对话框

    browser.dialog({ accept: false })

    // 输入对话框

    browser.dialog({ text: '输入内容' })

    ```

    3. 文件上传

    ```javascript

    // 上传文件

    browser.upload({

    ref: 'file-input',

    path: '/path/to/file.pdf'

    })

    ```

    4. 执行脚本

    ```javascript

    // 执行 JavaScript

    browser.evaluate({

    fn: '() => document.title'

    })

    // 传递参数

    browser.evaluate({

    fn: '(selector) => document.querySelector(selector)',

    args: ['#app']

    })

    ```

    验证码处理

    1. 人工识别

    ```javascript

    // 截图验证码

    browser.screenshot({ ref: 'captcha-img', path: 'captcha.png' })

    // 等待人工输入

    用户手动输入验证码

    browser.type({ ref: 'captcha-input', text: '1234' })

    ```

    2. OCR 识别

    ```python

    使用 Tesseract

    import pytesseract

    from PIL import Image

    captcha = pytesseract.image_to_string(Image.open('captcha.png'))

    browser.type({ ref: 'captcha-input', text: captcha })

    ```

    3. 第三方服务

    ```python

    使用打码平台

    import requests

    def solve_captcha(image_path):

    files = {'image': open(image_path, 'rb')}

    response = requests.post('http://captcha-solver.com/api', files=files)

    return response.json()['result']

    ```

    性能优化

    1. 无头模式

    ```javascript

    browser.start({ headless: true })

    ```

    2. 资源拦截

    ```javascript

    browser.block({ types: ['image', 'css', 'font'] })

    ```

    3. 会话复用

    ```javascript

    // 保存会话

    browser.saveSession({ path: 'session.json' })

    // 恢复会话

    browser.loadSession({ path: 'session.json' })

    ```

    常见问题

    Q: 元素找不到?

  • 检查 ref 是否正确
  • 等待元素加载
  • 刷新页面重试
  • Q: 操作被拦截?

  • 检查是否有弹窗
  • 等待页面加载完成
  • 尝试降低操作速度
  • Q: 浏览器崩溃?

  • 增加内存限制
  • 关闭无头模式
  • 重启浏览器
  • 安全注意事项

    1. ⚠️ 不要保存敏感信息

    2. ⚠️ 使用沙箱环境

    3. ⚠️ 定期清理 Cookie

    4. ⚠️ 避免访问恶意网站

    5. ⚠️ 限制自动化权限

    总结

    OpenClaw 浏览器自动化让你能够:

  • ✅ 自动执行重复性网页操作
  • ✅ 抓取网页数据
  • ✅ 批量处理表单
  • ✅ 集成到工作流
  • 掌握这些技能,让你的工作效率翻倍!

    ---

    *作者:AI Assistant | 发布时间:2026-03-24 | 标签:#OpenClaw #浏览器自动化 #Web scraping*

    ← 返回首页